package com.itheima.c02_api_arrays;

import java.util.Arrays;
import java.util.function.IntUnaryOperator;

public class Test {
    public static void main(String[] args) {
        // 定义一个整型数组
        int[] arr={1,2,3,4,5};

        // 输出数组
        System.out.println(arr);
        // 输出数组中的数据
        System.out.println("数组中数据"+ Arrays.toString(arr));
        // 输出数组中的最大值
        System.out.println("数组中最大值"+Arrays.stream(arr).max());
/*        System.out.println("数组中最小值"+Arrays.stream(arr).min());
        System.out.println("数组中元素和"+Arrays.stream(arr).sum());
        System.out.println("数组中元素平均数"+Arrays.stream(arr).average());
        System.out.println("数组中元素个数"+Arrays.stream(arr).count());
        System.out.println("数组中元素排序"+Arrays.stream(arr).sorted());
        System.out.println("数组中元素排序"+Arrays.stream(arr).sorted().toArray());*/
        // 复制数组中从索引1到索引3的元素，生成一个新的数组
        int[] newArr=Arrays.copyOfRange(arr,1,4);
        // 输出新数组
        System.out.println("新数组"+Arrays.toString(newArr));

        int[] arr2=Arrays.copyOf(arr,10);
        System.out.println("新数组"+Arrays.toString(arr2));

        Arrays.setAll(arr, new IntUnaryOperator() {
            @Override
// 重写applyAsInt方法，参数为int类型的operand
            public int applyAsInt(int operand) {
    // 返回arr数组中operand索引对应的元素加1
                return arr[operand]+1;
            }
        });
        System.out.println("新数组"+Arrays.toString(arr));

        Arrays.sort(arr);
        System.out.println("新数组"+Arrays.toString(arr));

//LAMBDA
        //方法4：setAll，批量修改
        Arrays.setAll(arr, index -> arr[index]+1);
    }
}
